package ua.at.javac.server;

import java.util.List;

/**
 * Выборка из базы данных
 * @author CHerry
 * @serial 101
 * @since  Nov 24, 2011
 */
public class ViewsDatabase extends Database {
	
	public ViewsDatabase() throws ClassNotFoundException {
		super();
	}

	/**
	 * Возвращает таблицу рассчитанных средних значений погодных
	 * данных по всем серверам
	 * @param upToDate дата
	 * @param city город из справочника
	 * @return Коллекция ArrayList каждый элемент которой 
	 * - строковый массив:
	 * 
	 * <LI> 1  uptodate дата
	 * <LI> 2  city город
	 * <LI> 3  period период (утро, день, вечер, ночь)
	 * <LI> 4  cloudiness облачность (%)
	 * <LI> 5  temperature температура (град.цельсия)
	 * <LI> 6  precipitation осадки (мм)
	 * <LI> 7  humidity влажность (%)
	 * <LI> 8  pressure давление (мм.ртутного столба)
	 * <LI> 9  windSpeed скорость ветра (м/с)
     * <LI> 10 cloudinessFile имя файла картинки облачности
     * <LI> 11 temperatureFile имя файла картинки температуры
     * <LI> 12 precipitationFile имя файла картинки осадков
     * <LI> 13 pressureFile имя файла картинки давления
     * <LI> 14 windDirection направление картинки ветра
	 */
	public List<String[]> avgCityFile (String upToDate, String city) {
		String sqlQuery="SELECT * FROM avgCityFile " +
						"WHERE (uptodate >= '"+upToDate+"') " +
						"AND (city='"+ city+"');";
		List<String[]> tableWeather = getTable(sqlQuery, 14);
		return tableWeather;
	}

	public List<String[]> averagetData(String upToDate, String city){
		String sqlQuery="SELECT * FROM avgJournal " +
						"WHERE (uptodate = '"+upToDate+"') " +
						"AND (city='"+ city+"');";
		List<String[]> views = getTable(sqlQuery, 11);
		return views;
	}

	/**
	 * Возвращает таблицу рассчитанных средних значений погодных
	 * данных по каждому серверу
	 * @param upToDate дата
	 * @param city город из справочника
	 * @return Коллекция ArrayList каждый элемент которой 
	 * - строковый массив:
	 * <LI> 1  uptodate дата
	 * <LI> 2  city город
	 * <LI> 3  period период (утро, день, вечер, ночь)
	 * <LI> 4  site (источник данных)
	 * <LI> 5  cloudiness облачность (%)
	 * <LI> 6  temperature температура (град.цельсия)
	 * <LI> 7  precipitation осадки (мм)
	 * <LI> 8  humidity влажность (%)
	 * <LI> 9  pressure давление (мм.ртутного столба)
	 */
	public List<String[]> avgSite(String upToDate, String city){
	    String sqlQuery="SELECT * FROM avgWithSite " +
	    				"WHERE (uptodate = '"+upToDate+"') " +
	    				"AND (city='"+ city+"');";
		List<String[]> views = getTable(sqlQuery, 9);
		return views;
	}
}